package com.copc.copc.pojo.vo.order;

import java.io.Serializable;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString(includeFieldNames = false, callSuper = true)
public class ByteMsgVO implements Serializable {
    /**
     * 抖音开平侧生成的订单号
     */
    private String order_id;

    /**
     * 商品信息，详情见goods字段
     */
    private List<ByteGoodsVO> goods;

    /**
     * 商品信息，详情见 sku_list参数 部分，sku下单会返回，该字段未来会取代goods字段，goods字段会逐步淘汰，使用该字段下单暂不支持营销扩展点能力
     */
    private List<ByteSkuListVO> sku_list;

    /**
     * 订单总价格，单位分
     *
     * 用户实付金额 = total_amount - discount
     */
    private String total_amount;

    /**
     * 订单折扣，单位分
     */
    private String discount;

    /**
     * 预下单时开发者定义的透传信息
     */
//    private ByteExtraVO cp_extra;
    private String cp_extra;

    /**
     * 订单创建时间，13 位时间戳，单位毫秒
     */
    private String create_order_time;

    /**
     * 用户手机号
     */
    private String phone_num;

    /**
     * 联系人姓名
     */
    private String contact_name;

    /**
     * 用户 OpenID
     */
    private String open_id;

    /**
     * 小程序id
     */
    private String app_id;

    /**
     * 用户的 UnionID
     */
    private String union_id;

    /**
     * 核销类型，开平告知此订单是否可走闭环核销判断结果。
     * 0：三方码，开发者自行处理券码生成及展示，通过 push_delivery 接口推送核销状态。
     * 1：抖音码，抖音开平负责生券，开发者使用核销组件展示，使用验券准备和验券接口核销。
     */
    private String delivery_type;

    /**
     * 营销算价结果信息，详情见字段描述
     */
    private BytePriceCalculationDetailVO price_calculation_detail;

    /**
     * 有物流配送需求的时候提单页会让用户填入配送地址，本字段存储用户的收货地址。注：本字段当前仅开放给泛知识行业使用，其他行业可暂时不用关注该字段
     */
    private ByteAddressVO address;

    /**
     * 预约信息，目前应用于酒旅、门票预售券类场景中，详情参见open_book_info字段说明
     */
    private ByteOpenBookInfoVO open_book_info;

    /**
     * item_order信息，详情参见item_order_info_list字段说明
     */
    private List<ByteItemOrderInfoVO> item_order_info_list;

}
